import { resolve } from 'path';
console.log('运行环境：', process.env.NODE_ENV);
export default {
  // 是否需要服务端渲染 spa客户端渲染 universal服务端渲染
  mode: 'universal',

  // Global page headers: https://go.nuxtjs.dev/config-head
  head: {
    title: 'eslin-nuxt',
    htmlAttrs: {
      lang: 'en'
    },
    // 页面中如果有相同的 hid 将会替换此处的
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: 'config meta' }
    ],
    link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }]
  },

  // 只要在根目录的components的组件会被自动全局挂载，无需再引入
  components: true,

  //  开发和构建需要模块,上线不需要的 Modules for dev and build (recommended): https://go.nuxtjs.dev/config-modules
  buildModules: [
    // Doc: https://github.com/nuxt-community/eslint-module
    '@nuxtjs/eslint-module' // 这里配置只会对当前页面验证
  ],

  // 扩展nuxt能力 Modules: https://go.nuxtjs.dev/config-modules
  modules: [
    // https://go.nuxtjs.dev/axios
    '@nuxtjs/axios',
    '@nuxtjs/proxy',
    // '@nuxtjs/auth'//身份验证模块
    '@nuxtjs/style-resources'
  ],

  // loading: { color: 'red', height: '3px' },//默认
  loading: '~/components/Loading.vue', // 自定义

  // 构建配置 Build configuration  https://go.nuxtjs.dev/config-build
  build: {
    // transpile: [/^element-ui/],

    // analyze: true,// webpack-bundle-analyzer 分析打包插件

    cssSourceMap: true, // 开启 CSS Source Map 支持  true开发，false生产

    extractCSS: true, // 启用常见CSS提取。

    // 为客户端和服务端的构建配置进行手工的扩展处理。
    extend(config, { isDev, isClient }) {
      if (isDev && isClient) {
        // 启用ESLint热更新模式
        config.module.rules.push({
          enforce: 'pre',
          test: /\.(js|vue)$/,
          loader: 'eslint-loader',
          exclude: /(node_modules)/
        });
      }
    }
  },

  // 开发 或者 生产  nuxt 命令时，dev 会被强制设置成 true ; nuxt build， nuxt start 或 nuxt generate 命令时，dev 会被强制设置成 false
  dev: process.env.NODE_ENV !== 'production', // true 开发环境，false 生产环境

  // 环境变量。通过 process.env 或者 context.env 获取
  env: {
    // 因为安装了 cross-env，可以在scripts标签命令行内添加 BASE_URL='' ,
    // 例如 ： "dev": "cross-env BASE_URL=https://www.baidu.com NODE_ENV=development nuxt",
    baseURL: process.env.BASE_URL || 'http://1277.0.0.1:5000', // 我自己在config文件了配置了一个，可以不用这个
    NODE_ENV: process.env.NODE_ENV // 打包的环境变量 ，这里用的时scripts标签上的值
  },

  // 页面过度名  和transition同样效果   默认page
  pageTransition: 'page',

  // 布局过度名
  layoutTransition: 'layout',

  // Global CSS,相当于main.js引入
  css: [
    // 'bulma', // 如果直接加载一个 Node.js 模块。（在这里它是一个 Sass 文件）
    // 'element-ui/lib/theme-chalk/index.css',
    '~/assets/css/index.scss'
  ],

  // 全局注入scss 配合modules 加载 @nuxtjs/style-resources
  styleResources: {
    scss: './assets/css/variable.scss'
  },

  // 路径别名
  alias: {
    // 默认
    //   '~~': `<rootDir>`,
    //   '@@': `<rootDir>`,
    //   '~': `<srcDir>`,
    //   '@': `<srcDir>`,
    //   'assets': `<srcDir>/assets`, // (unless you have set a custom `dir.assets`)
    //   'static': `<srcDir>/static`, // (unless you have set a custom `dir.static`)
    components: resolve(__dirname, './components')
  },

  // 相当于main.js引入
  plugins: [
    { src: '@/plugins/element-ui' }, // 或'@/plugins/element-ui',  // both client & server
    // { src: '~/plugins/client-only.js', mode: 'client' },客户端加载 或者 老版本 ssr:false，不加两端都会运行
    // { src: '~/plugins/server-only.js', mode: 'server' }，服务端加载 或者 老版本 ssr:true,
    { src: '~/plugins/global.js' },
    { src: '@/plugins/vue-baidu-map', ssr: false }
  ],

  // Axios module configuration: https://go.nuxtjs.dev/config-axios
  axios: {
    proxy: true
  },

  proxy: {
    '/api': {
      target: 'http://172.17.1.250:6971',
      pathRewrite: {
        '^/api': '/'
      }
    }
  },

  router: {
    // 中间件，每次路由跳转都将执行
    middleware: ['middleware-serve-test', 'browserVersion', 'user-agent'], // browserVersion检测是否是ie

    // base: '/app/',

    // routeNameSplitter: '/',//更改路由跳转 name 时的分隔符，默认 -

    // 添加路由配置 这里不能重定向
    extendRoutes(routes, resolve) {
      // 默认'/'就是index页面，如果跳转'/index'会404，以下是为路由增加了'/index'路由跳转，这样'/index'和'/'都会跳转index页面
      routes.push({
        name: 'home',
        path: '/index',
        component: resolve(__dirname, 'pages/index.vue')
      });
      // 不存在的页面
      routes.push({
        name: 'custom',
        path: '*',
        component: resolve(__dirname, 'pages/404.vue')
      });
    }

    // // 全局配置 <nuxt-link> 组件默认的激活类名
    // linkActiveClass: 'active-link',

    // // 全局配置 <nuxt-link> 组件点击时的类名
    // linkExactActiveClass: 'exact-active-link',

    // // 全局配置 <nuxt-link> 组件默认类名
    // linkPrefetchedClass: 'nuxt-link-prefetched',
  },

  server: {
    port: 5000, // default: 3000
    host: '127.0.0.1' // default: localhost
  },
  cache: true
};
